package day0401;

import java.util.Scanner;


public class SuShu21 {
    /**
     * 21.RSA 加密算法 素数之积
     * RSA 加密算法在网络安全世界中无处不在，它利用了极大整数因数分解的困难度，数据越大安全系数越高
     * 给定了一个32位正整数，请对其进行因数分解，找出哪两个素数的乘积
     * <p>
     * 输入描述
     * 一个正整数num
     * 0 < num <= 2147483647
     * <p>
     * 输出描述
     * 如果成功找到以单个空格分割
     * 从小到大输出两个素数
     * 分解失败请输出-1 -1
     * <p>
     * 示例一
     * 输入
     * 15
     * 输出
     * 3 5
     * 说明
     * 因数分解后3 * 5 = 15
     * 从小到大后输出 3 5
     * <p>
     * 示例二
     * 输入
     * 27
     * 输出
     * -1 -1
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()) {
            int num = Integer.parseInt(sc.nextLine());
            int res = judge(num);
            if (res != 0) {
                if (judge(res) != 0 || judge(num / res) != 0) {
                    System.out.println("-1 -1");
                } else {
                    System.out.println(Math.min(num / res, res) + " " + Math.max(num / res, res));
                }
            } else {
                System.out.println("1" + " " + num);
            }

        }
    }

    private static int judge(int num) {
        int res = 0;
        for (int i = 2; i <= (int) Math.sqrt(num); i++) {
            res = num % i == 0 ? i : 0;
            if (res != 0) {
                break;
            }
        }
        // 如果res = 0  则为素数
        return res;
    }
}
